Distributed server system and method for streaming game service

ABSTRACT

The present disclosure relates to distributed server systems and methods for streaming game service, and in particular, to a distributed server system and method for streaming game service in which an online game is executed for multiple users in a high-performance server computer, and game screens and sounds of multiple users are delivered to client terminals of the multiple users, respectively, by using real-time encoding and streaming. For this purpose, a game service method in a cloud game server includes receiving an access request from a user terminal, receiving unique information about the user terminal, executing a game according to a game event requested by the user terminal, and encoding and transmitting video and audio according to the unique information about the user terminal, where the video and audio is a result of the game execution.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based on and claims priority from Korean Patent Application No. 10-2011-0124257, filed on Nov. 25, 2011, with the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

TECHNICAL FIELD

The present disclosure relates to distributed server systems and methods for streaming game service, and in particular, to a distributed server system and method for streaming game service in which an online game is executed for multiple users by a high-performance server computer, and a plurality of game result screens and game sounds are delivered to client terminals of the multiple users, respectively, by using real-time encoding and streaming.

BACKGROUND

As communication technologies are rapidly developed and also wired/wireless network environments are improved, set-top boxes, smart devices, and mobile terminals have come into wide use. Terminals have gradually better hardware performance, but have difficulty in smoothly executing a variety of game contents because of limitations in the size, volume, and weight, unlike a high performance personal computer (PC).

As an online game market grows every year and thus the amount of investment cost and development time have considerably increased, game contents being currently developed have the enormous amounts of rendering and data, and terminals correspondingly have better hardware performance to execute the game contents.

In such an environment, users want to enjoy playing games with various terminals anywhere the Internet is accessible by cable or wireless. However, in order to install a variety of game contents developed for PCs and game consoles into the terminals, installation fees and tasks are additionally required.

In particular, small and light terminals such as a mobile terminal and a smart terminal have much influence of hardware and system software, and thus have difficulties in that an installation procedure is complicated, and also an additional work is needed for the terminals even when a system environment is a little changed.

However, existing online games are single-server/client based games, which require a client environment of a high-specification and significantly affect functions and performances of game services provided according to the client performance. That is, in order for a client to execute the games, hardware resources of the client, such as a processor, a memory, a storage, and a graphic card are required to have high performance. Thus, unnecessary resource consumption may be accompanied, and multiple-user support may be limited.

SUMMARY

The present disclosure has been made in an effort to provide a distributed server system and method for streaming game service, which rejects installation of a variety of game contents or any other content requiring high performance graphic and rendering in a terminal highly dependent on a system, such as a mobile terminal and a smart terminal, and provides a variety of content in limited hardware and software environments.

An exemplary embodiment of the present disclosure provides a game service method in a cloud streaming game server including: requesting an access to an external access server; receiving a game list and unique information corresponding to a user terminal requesting a game from the external access server; storing the received game list and unique information; and transmitting an Internet address accessible by the user terminal requesting a game to the external access server.

Another exemplary embodiment of the present disclosure provides a game service method in an external access server including: receiving an access request from a user terminal; receiving unique information about the user terminal from the user terminal; and providing an Internet address of a cloud streaming game server supporting a game based on the received unique information.

Yet another exemplary embodiment of the present disclosure provides a game service method in a cloud streaming game server including: receiving an access request from a user terminal; receiving unique information about the user terminal; executing a game according to a game event requested by the user terminal; and encoding and transmitting video and audio according to the unique information about the user terminal, where the video and audio is a result of the game execution.

The server system for streaming game service according to an exemplary embodiment of the present disclosure can reduce installation fee and work required to apply an existing game, which is developed at substantial cost and effort, to a new terminal such as a mobile device, a set-top box, and a smart device and also time and effort required to update the terminal whenever the game is updated.

The server system for streaming game service according to an embodiment of the present disclosure can prevent losses caused by illegal copying and downloading of the game because a terminal has only a game-execution video which may be replaced with an actual game client.

In the server system for streaming game service according to an embodiment of the present disclosure, a user can enjoy desired games with various terminals anywhere the wired/wireless Internet is accessible.

The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a concept of a real-time streaming game service according to an embodiment of the present disclosure.

FIG. 2 illustrates respective elements configuring the real-time streaming game service according to an embodiment of the present disclosure.

FIG. 3 illustrates operations for setting an initial environment between an external access server and a cloud streaming game server according to an embodiment of the present disclosure.

FIG. 4 illustrates initial operations for executing a game between an external access server, a cloud streaming game server, and a user terminal according to an embodiment of the present disclosure.

DETAILED DESCRIPTION

In the following detailed description, reference is made to the accompanying drawing, which form a part hereof. The illustrative embodiments described in the detailed description, drawing, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.

Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Configurations, operations, and effects of the present disclosure will be clearly understood from the detailed descriptions below.

It should be noted that like reference numerals refer to like elements even when they are depicted in different drawings. Detailed descriptions related to well-known functions or configurations will be ruled out in order not to unnecessarily obscure subject matters of the present disclosure.

FIG. 1 is a block diagram illustrating a concept of a real-time streaming game service according to an embodiment of the present disclosure. The real-time streaming game service according to an embodiment of the present disclosure will be described below in detail with reference to FIG. 1.

As illustrated in FIG. 1, the real-time streaming game service system includes a plurality of cloud game server 300, an external access server 200, and a plurality of user terminals 100. It is obvious that other elements may be included in addition to the above element.

The real-time streaming game service system establishes a distributed streaming game server environment as illustrated in FIG. 1. Under the distributed streaming game server environment, a high performance server executes a game content desired by a user, encodes and streams the executed game content in real-time, and then delivers the encoded and streamed game content to a user terminal.

The user terminal 100 plays a game-execution video delivered from the server, and then delivers a user event occurring during the video play to the server. This method may have the same effect as actually executing a game, without being affected by performance and operating system of the user terminal 100, through a game client does not need to be directly installed in the user terminal 100. The user terminal 100 performs only simple functions such as video playback and user input transmission, thereby significantly reducing execution burden thereof. Operations of respective elements configuring the real-time streaming game service system will be described below with reference to FIG. 2.

FIG. 2 illustrates respective elements configuring the real-time streaming game service system according to an embodiment of the present disclosure. As described above, the real-time streaming game service system includes a cloud game server 300, an external access server 200, and a user terminal (client) 100. As described above, any other element may also be included in the embodiment of the present disclosure.

The cloud game server 300 is responsible to execute a game desired by a user. The cloud game server 300 actually executes a game, encodes and streams the executed result in real-time, and then transmits the encoded and streamed result to the user terminal 100 being the client. That is, the cloud game server 300 executes the game according to an event delivered from the user terminal 100, encodes the executed game result in real-time, and then provides the encoded game result to the user terminal 100. Accordingly, the cloud game server 300 has stored information about event types and event operation methods which may be received from the user terminal 100.

The external access server 200 is a server which is first accessed by the user terminal 100 for game service. The external access server 200 checks resource usages on several cloud game servers and notifies an address of a cloud game server having the lowest resource usage to the user terminal 100 when the user terminal 100 is accessed. The external access server 200 receives a system state from the cloud game server 300 at a certain interval so as to check the resource usage on the cloud game server 300.

The user terminal 100 may include a variety of terminals such as a PC, a set-top box, a notebook, a smart terminal, a netbook, and a mobile device. A thin client platform intends to be established to provide game streaming service applicable to all the terminals. To execute a game irrespective of a terminal environment such as an operating system and performance of the user terminal 100, the user terminal 100 receives a game-execution video from the cloud game server 300, plays back the video, and then delivers events occurring in the user terminal 100 to the cloud game server 300 on which the game is actually being executed. That is, the user terminal 100 has only a video player and an event input unit, and the cloud game server 300 is responsible for all functions or operations associated with actual game execution.

That is, the cloud game server 300 actually executes a game to be transmitted to the user terminal 100, encodes the executed content into a video, and then transmits the video the user terminal 100 together a user interface (UI) for the game. As describe above, the cloud game server 300 transmits the UI associated with game execution to the user terminal, and transmits information about event types and game execution commands according to the manipulation of the UI. The cloud game server 300 may store information about the UI and game in a separate storage as illustrated in FIGS. 1 and 2. The cloud game server 300 may store the information in a storage provided in the server.

As illustrated in FIG. 1, a plurality of user terminals may be connected to one cloud game server, and a session manager for managing an event input and streaming delivered from each user terminal may be additionally included in the cloud game server. That is, the cloud game server 300 separately manages information about the user terminal 100 connected thereto, and the event input delivered from each user terminal 100.

The cloud game server 300 stores the content of the game under agreement of the user terminal 100 when the user terminal 100 requests the end of the game That is, the cloud game server 300 may provide the stored game execution history to the user terminal 100 when the same user terminal 100 requests the execution of the same game. If the user terminal 100 accesses any other cloud game server, the cloud game server 300 provides the game history to the external access server 200. The external access server 200 may store the provided game history, and provide the game history to the other cloud game server 300 requesting the game history.

The cloud game server 300 provides the system resource usage thereof to the external access server 200 at a certain interval, and thus the external access server 200 can perform server resource distribution appropriately.

FIG. 3 illustrates operations for setting an initial environment between the external access server and the cloud game server according to an embodiment of the present disclosure. The operations for setting an initial environment between the external access server and the cloud game server according to an exemplary embodiment of the present disclosure will be described below in detail with reference to FIG. 3.

In step S300, the cloud game server sends a connection request message to the external access server when the cloud game server is driven.

In step S302, the cloud game server receives messages including game information and user terminal information from the external access server when the cloud game server and the external access server are completely connected. That is, the cloud game server receives a user information notification message DSP_NOTIFY_USERINFO including the user terminal information (or user information) and a game information notification message DSP_NOTIFY_GAMEINFO including the game information from the external access server. The above messages are managed by the external access server and contain user information such as the total number, IDs, and passwords of the users, and game list information.

In step S304, the cloud game server receives and stores the user information and the game information in a user database (DB) and a game DB, respectively. The user information and the game information may be received from the external access server or any other server according to where user authentication and game selection are performed. In the present disclosure, the user authentication and game selection are assumed to be performed in the external access server.

In step S306, the cloud game server transmits a node URL message DSPNODE_DSPNODE_URL including a URL of the cloud game server to the external access server. The external access server utilizes this information when the external access server transmits URL information about an accessible cloud game server to a user terminal.

In step S308, the cloud game server delivers the system information thereof to the external access server at a certain interval. The certain interval when the cloud game server transmits the system information thereof to the external access server may vary depending on a state of the cloud game server. That is, the interval of system information transmission may be extended when the number of user terminals accessing the cloud game server is small to smoothly execute a game, and the interval of system information transmission may be shortened when the number of user terminals accessing the cloud game server is large not to smoothly execute the game. In addition to this method, the cloud game server may control the interval for transmitting the system information thereof to the external access server, in various methods.

The above system information is a system information notification message DSPNODE_NOTIFY_SYSINFO, which allows the external access server to allocate the user terminal appropriate cloud game server on the basis of the system information about the cloud game server. If an access error occurs due to unexpected shutdown of the external access server, the cloud game server sends a DSP connection request, instead of DSPNODE_NOTIFY_SYSINFO, to the external access server at a certain interval, thereby preparing for restart of the external access server.

FIG. 4 illustrates initial operations for game execution between the external access server, the cloud streaming game server, and the user terminal according to an embodiment of the present disclosure. The initial operations for game execution between the external access server, the cloud game server, and the user terminal according to an embodiment of the present disclosure will be described below in detail with reference to FIG. 4.

In step S400, the user terminal transmits a connection request message for requesting connection from the external access server so as to execute the game.

In step S402, the user terminal transmits a device information provision message including the device information thereof to the external access server when the user terminal and the external access server are completely connected. The external access server searches for a cloud game server capable of supporting appropriate streaming service to the user terminal on the basis of the system information about the cloud game server received from the cloud game server and user terminal information.

In step S404, the external access server delivers a node URL provision message DSPNODE_DSPNODE_URL including URL information about the selected cloud game server to the user terminal.

In step S406, the user terminal requests an access to the cloud game server through the URL which has been received from the external access server.

In step S408, the user terminal transmits terminal information thereof to the cloud game server when accessing the cloud game server. The user terminal information includes information about a CPU, a memory, and a resolution of a system of the user terminal, and may be used for the cloud game server to provide game service suitable for the user terminal.

In step S410, the cloud game server executes an audio/video (AV) encoding/streaming module (EQS module) responsible for AV encoding and AV streaming.

In step S412, the cloud game server delivers user terminal resolution information to the AV encoding/streaming module.

In step S414, the AV encoding/streaming module is completely ready to encode and stream the game and notifies the completion to the cloud game server through an EQS module streaming ready message EQS_STREMAING_READY.

In step S416, the cloud game server transmits a node streaming URL message DSPNODE_STREAMING_URL containing EQS module streaming URL information so that the user terminal may receive a game-execution video.

In step S418, the user terminal confirms the URL information included in the received node streaming URL message and then access the AV encoding/streaming module.

In step S420, the user terminal receives the selected game through streaming The streaming conforms to a streaming protocol of RTP/RTSP, etc.

Although a process of performing real-time streaming game service according to an exemplary embodiment of the present disclosure has been described with reference to FIGS. 3 and 4, it will be understood by those of ordinary skill in the art that various changes in form and details may be made without departing from the spirit and scope of the present disclosure.

From the foregoing, it will be appreciated that various embodiments of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various embodiments disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims. 

What is claimed is:
 1. A game service method in a cloud game server comprising: requesting an access to an external access server; receiving a game list and unique information corresponding to a user terminal requesting a game from the external access server; storing the received game list and unique information; and transmitting an Internet address accessible by the user terminal requesting the game to the external access server.
 2. The game service method of claim 1, wherein the unique information comprises the total number, identifiers, and passwords of users requesting the game.
 3. The game service method of claim 2, wherein the received game list and unique information are stored in a separate storage.
 4. The game service method of claim 3, further comprising: transmitting system information to the external access server at a certain interval after the transmitting of the Internet address to the external access server, the system information comprising information about a user terminal accessing the Internet address.
 5. A game service method in an external access server comprising: receiving an access request from a user terminal; receiving unique information about the user terminal from the user terminal; and providing an Internet address of a cloud game server supporting a game based on the received unique information.
 6. The game service method of claim 5, wherein the providing of the Internet address comprises providing an Internet address of a cloud game server supporting the game from among a plurality of cloud game servers, based on the unique information received from the user terminal and the system information received from the cloud game server.
 7. A game service method in a cloud game server comprising: receiving an access request from a user terminal; receiving unique information about the user terminal; executing a game according to a game event requested by the user terminal; and encoding and transmitting video and audio according to the unique information about the user terminal, the video and audio being a result of the game execution.
 8. The game service method of claim 7, wherein the unique information about the user terminal comprises at least one of a resolution, a memory, and a CPU of the user terminal.
 9. The game service method of claim 8, wherein the cloud game server comprises an AV encoding/streaming module for encoding and streaming the video and audio.
 10. The game service method of claim 9, wherein the AV encoding/streaming module receives the resolution information about the user terminal and encodes the video and audio of the game to be transmitted to the user terminal using the received resolution information.
 11. The game service method of claim 10, wherein the cloud game server provides an Internet address of the AV encoding/streaming module to the user terminal.
 12. The game service method of claim 11, wherein the AV encoding/streaming module encodes and then streams the result of the game execution according to the game event received from the user terminal.
 13. The game service method of claim 9, wherein the cloud game server selects one AV encoding/streaming module from among a plurality of AV encoding/streaming modules using the resolution information about the user terminal. 